From: Florian Müllner Date: Tue, 21 May 2013 17:04:03 +0000 (+0200) Subject: popupMenu: Allow for an optional border for slider handle X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~1013^2^2~4130 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=bbb23b515f31ae114d65e6885cfd41f4d0841094;p=gnome-shell.git popupMenu: Allow for an optional border for slider handle While the default style works well will a solid handle, using both border and fill color would be desirable in classic mode. Add the necessary (optional) style properties to allow this. https://bugzilla.gnome.org/show_bug.cgi?id=697917 --- diff --git a/js/ui/popupMenu.js b/js/ui/popupMenu.js index eb683ffc4..fbe1e7e41 100644 --- a/js/ui/popupMenu.js +++ b/js/ui/popupMenu.js @@ -551,6 +551,10 @@ const PopupSliderMenuItem = new Lang.Class({ let handleRadius = themeNode.get_length('-slider-handle-radius'); + let handleBorderWidth = themeNode.get_length('-slider-handle-border-width'); + let [hasHandleColor, handleBorderColor] = + themeNode.lookup_color('-slider-handle-border-color', false); + let sliderWidth = width - 2 * handleRadius; let sliderHeight = themeNode.get_length('-slider-height'); @@ -602,7 +606,16 @@ const PopupSliderMenuItem = new Lang.Class({ color.blue / 255, color.alpha / 255); cr.arc(handleX, handleY, handleRadius, 0, 2 * Math.PI); - cr.fill(); + cr.fillPreserve(); + if (hasHandleColor && handleBorderWidth) { + cr.setSourceRGBA( + handleBorderColor.red / 255, + handleBorderColor.green / 255, + handleBorderColor.blue / 255, + handleBorderColor.alpha / 255); + cr.setLineWidth(handleBorderWidth); + cr.stroke(); + } cr.$dispose(); },